package com.qiall.user.ability.service.user;


import com.qiall.common.entity.PageResponse;
import com.qiall.common.exception.BusinessResult;
import com.qiall.common.request.BaseAuthDTO;
import com.qiall.common.request.BaseRequest;
import com.qiall.common.request.BaseResponse;
import com.qiall.common.request.GetByIdRequest;
import com.qiall.user.ability.entity.*;

import java.util.List;

/**
 * @author 吴金辉
 */
public interface UserService {

    /**
     * 获取用户信息
     *
     * @param authDTO
     * @return
     */
    BusinessResult<UserInfoDTO> getUserInfoByAuthCode(BaseRequest authDTO);

    /**
     * 新增用户
     *
     * @param userInfoDTO
     */
    BusinessResult<BaseResponse> createUserInfo(CreateUserDTO userInfoDTO);

    /**
     * 是否为系统管理员
     */
    BusinessResult<IsAdminDTO> isSystemAdmin(UserInfoDTO userInfoDTO);

    BusinessResult<UserInfoDTO> getUserInfo(Integer userId);

    BusinessResult<PageResponse<UserInfoDTO>> getUserInfoByPage(UserPageQueryDTO userPageQueryDTO);

    BusinessResult<Void> deleteUser(GetByIdRequest request);

    BusinessResult<List<UserInfoDTO>> getUserInfoByOrgAccount(GetByAccountRequest request);


}
